1. Field of the Invention
The present invention relates to a stream transfer control system having a server unit which distributes streams of moving images and voice to a plurality of clients over a network at the request for transfer from a client and a data reading method thereof.
2. Description of the Related Art
Information continues in terms of time such as moving images and voice is referred to as a stream. Multimedia system has been developed which is composed of a server unit for coding and accumulating such streams and a terminal unit for decoding streams received from the server unit over a network to reproduce moving images and voice.
One of such systems is a VoD (Video on Demand) system. In the VoD system, where an STU (Set Top Unit) as a terminal unit and a video server as a server unit are connected through a network, a user who wants to view picture designates a reproduction position of a video title which he wants to reproduce by means of the STU following the same procedure as that for operating a video cassette recorder. Video server which has numerous coded video titles accumulated at a secondary storage unit, reads, according to a command sent from a STU, picture information of a designated video title from the designated position on among the accumulated video titles and transmits the same to the STU which has issued the command. The STU decodes the picture information sent over the network to reproduce the picture. The STU is also allowed during the reproduction of predetermined picture to conduct such operation as change of a video title to be reproduced and jump from one scene to another to reproduce the same title starting at another position.
Video server, as mentioned above, reads desired data from a secondary storage unit in accordance with a user's instruction and distributes the same to an STU. Control at the video server conducted at this time is referred to as transfer control. In a VoD system, one video server distributes streams to a plurality of STUs. Having a plurality of secondary storage units, a video server ensures a throughput (the amount of data readable per unit time) necessary for distributing a plurality of streams at a time. In this case, data of each video title is dispersedly stored in secondary storage units.
Since in a VoD system, data of video titles are thus dispersedly stored in a plurality of secondary storage units and a plurality of streams are serviced by one video server, inappropriate control from which secondary storage unit data of each stream is to be read might result in data reading concentrating on a particular secondary storage unit. In this case, since a processing capacity of the secondary storage unit will not be changed even when data reading concentrates thereon, a time required for the secondary storage unit from the arrival of a reading request to the actual start of reading processing will be increased. As a result, at a secondary storage unit on which data reading concentrates, response from when a request for data access is issued to the secondary storage unit until when a response returns will be degraded. A response time of data reading from the secondary storage unit is also affected by the amount of shifting of a magnetic head of the secondary storage unit.
As described in the foregoing, while a response time of a secondary storage unit is difficult to predict, a VoD system is designed to conceal variation in response time of secondary storage units in order not to affect reproduction at an STU by the transfer control at a video server because normal reproduction of picture also in terms of time at an STU is necessary.
One of conventional stream transfer control systems is, for example, a system disclosed in "System for Large-Scale Multiplex Access of Video Information" (Sakamonto, Nishimura and Nakano, Transactions of Institute of Electronics, Information and Communication Engineers of Japan Vol. J78-D-II, No. 1, pp76-85). The stream transfer control system recited in this literate, with individual switching means provided at each secondary storage unit to control each secondary storage unit at different timing, conducts control to prevent concentration of reading on a particular secondary storage unit so that the number of data reading from each secondary storage unit will not exceed a fixed value in a unit time.
In conventional stream transfer control systems of this kind, however, since a throughput of a secondary storage unit varies affected by the amount of shifting of a magnetic head as well as by the concentration of data reading on a particular secondary storage unit as described above, it is necessary to set an upper bound on the number of data read per unit time at a server unit so as not to affect reproduction at an STU even when a throughput varies. In other words, satisfactory improvement in performance can not be attained because assuming that a secondary storage unit has a worst throughput, the amount of throughput to be supplied by the server unit to a client should be determined.
Moreover, when a client once makes a request for data reading, conventional secondary storage units conduct reading unless the client cancels the request. When a client reads data from a secondary storage unit, however, not all the read data is always used effectively by the client. In an environment in which an application program is to be run with constraints imposed on time, when data in a secondary storage unit is required during the execution of the application program and if data reading is not completed within a time limit of the application program, the application program will be finished without completion of the processing using the data. In such a case, even when reading of the data is completed at the secondary storage unit, the application program to use the data will have been already finished. In other words, reading processing will be in vain.
Conventional secondary storage unit such as a terminate I/O Process Message of SCSI-2 allows a client to cancel a request which has been already issued to a secondary storage unit. For canceling the request, however, even if a time when the access will be invalid is known at the stage of the issuance of a request as mentioned in the above example, the client is required to execute processing for actively canceling the request, which is a laborious procedure.